package com.xci.core.annotation;

import java.lang.annotation.*;

/**
 * 数据库分页注解
 */
@Documented
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface Paged {
    /**
     * 是否启用排序
     */
    boolean allowSort() default true;

    /**
     * 是否允许多字段排序,默认单字段排序
     */
    boolean allowMultiSort() default false;

    /**
     * 默认页码
     */
    int defaultPageIndex() default 1;

    /**
     * 默认每页大小
     */
    int defaultPageSize() default 10;

    /**
     * 默认排序字段
     */
    String defaultSortName() default "";

    /**
     * 默认排序方式
     */
    String defaultSortDir() default "";

    /**
     * 排序字段名称转换方式 0无变化 1驼峰转下划线 2下划线转驼峰
     */
    int sortNameConvertType() default 1;

    /**
     * 排序字段名映射转换,格式:"接收字段名:转换后字段名"
     */
    String[] sortNameMap() default {};

    /**
     * 页码字段名称
     */
    String pageIndexField() default "pageIndex";

    /**
     * 每页数量字段名称
     */
    String pageSizeField() default "pageSize";

    /**
     * 排序字段名称
     */
    String sortNameField() default "sortName";

    /**
     * 排序方式字段名称
     */
    String sortDirField() default "sortDir";
}